package com.sxj.corejava.code05_方法;

/**
 * @author 石小俊
 * @date 2025年01月04日
 */
public class Test01_定义方法 {

    // 方法可以定义在类中的任意位置
    // 语法:修饰符 返回值类型 方法名(参数列表){方法体}

    // 此处可以定义方法
    public static void test() {
        System.out.println("这是一个无返回值的方法");
        System.out.println("测试");
    }

    /**
     * main方法也是一种方法
     *
     * @param args
     */
    public static void main(String[] args) {
        // 在此处调用方法
        // 如果调用的方法是当前类中的方法,则直接通过方法名(参数列表)来调用
        // 如果方法没有参数,则直接通过方法名()进行调用
        test();
        // 此时的参数列表是具体的值
        // 在声明方法时的参数列表中表示的是形参(形式参数),相当于声明变量
        // 在调用方法时的参数列表中表示的是实参(实际参数),相当于变量赋值
        add(2, 3);
        // 对于有返回值的方法,可以在打印操作中调用
        System.out.println(add(2, 3));
        // 也可以使用一个变量接收返回值
        // 此时表示将方法的返回值赋值给对应的变量
        int sum = add(2, 3);
        System.out.println(sum);
        show();
        System.out.println("*******************************");
        // 如果需要调用其他类中的方法,可以通过类名.方法名(参数列表)来调用
        SomeBean.test();
        // 参数列表中定义了几个参数,则在调用方法时必须传递对应数量的参数值
        sum = SomeBean.add(1, 2, 3);
        System.out.println(sum);
    }

    // 此处可以定义方法
    public static int add(int i, int j) {
        // 当方法有返回值时,方法体中逻辑上的最后一行必须使用return value结尾
        // 表示该方法的返回值是value
        return i + j;
    }

    public static String isAdult(int age) {
        if (age < 18) {
            return "未成年";
        } else {
            // return语句的后面不能有代码
            return "成年";
        }
    }

    public static void show() {
        int sum = 0;
        for (int i = 0; i < 10; i++) {
            sum = add(sum, i);
            System.out.println("sum:" + sum);
            if (sum > 10) {
                System.out.println("sum此时的值超出了10,其值为:" + sum);
                // 在方法中可以直接写return表示整个方法结束
                return;
            }
        }
        System.out.println(sum);

    }

}
// 此处不能定义方法
